cli: reduce code duplication, cleanup
authorFelix Fietkau <[email protected]>
Sat, 15 Mar 2025 15:02:55 +0000 (16:02 +0100)
committerFelix Fietkau <[email protected]>
Sat, 15 Mar 2025 15:04:12 +0000 (16:04 +0100)
Signed-off-by: Felix Fietkau <[email protected]>
cli.c

diff --git a/cli.c b/cli.c
index fcf9755854d8a57b3003a43f0d5beef6c2e51d4e..5029a60935e01b32f4650d026cbc78ead4bde024 100644 (file)
--- a/cli.c
+++ b/cli.c
@@ -655,9 +655,8 @@ int main(int argc, char **argv)
                        if (has_peerkey)
                                return usage(progname);
 
-                       if (!parse_key(peerkey, optarg)) {
+                       if (!parse_key(peerkey, optarg))
                                return 1;
-                       }
 
                        has_peerkey = true;
                        break;
@@ -669,16 +668,13 @@ int main(int argc, char **argv)
                                return 1;
 
                        has_key = true;
-                       edsign_sec_to_pub(pubkey, seckey);
-                       has_pubkey = true;
                        break;
                case 'k':
                        if (has_pubkey)
                                return usage(progname);
 
-                       if (!parse_key(pubkey, optarg)) {
+                       if (!parse_key(pubkey, optarg))
                                return 1;
-                       }
 
                        has_pubkey = true;
                        break;
@@ -686,14 +682,10 @@ int main(int argc, char **argv)
                        if (has_pubkey)
                                return usage(progname);
 
-                       if (!parse_key(seckey, optarg)) {
+                       if (!parse_key(seckey, optarg))
                                return 1;
-                       }
 
                        has_key = true;
-
-                       edsign_sec_to_pub(pubkey, seckey);
-                       has_pubkey = true;
                        break;
                case 'p':
                        password_prompt++;
@@ -735,6 +727,11 @@ int main(int argc, char **argv)
                }
        }
 
+       if (has_key) {
+               edsign_sec_to_pub(pubkey, seckey);
+               has_pubkey = true;
+       }
+
        if (!has_peerkey && cmd_needs_peerkey()) {
                INFO("Missing -h <key> argument\n");
                return 1;